Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

456
Views
Problema con la carga del "módulo ES" al importar en el nodo js

Así que actualmente estoy practicando con un bot comercial en un casco. Mi problema es que cuando quiero ejecutar mi script aparece este error:

 import './ABIConstants.js'; ^^^^^^ SyntaxError: Cannot use import statement outside a module

con esta sugerencia:

 (node:1284) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.

Sin embargo, cuando hago lo que me dice y configuro "tipo": "módulo" me sale este error:

 hardhat.config.js is treated as an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which declares all .js files in that package scope as ES modules. Instead rename hardhat.config.js to end in .cjs, change the requiring code to use dynamic import() which is avakage.json to treat all .js files as CommonJS (using .mjs for all ES modules instead).

Y los errores siguen como hago lo anterior....etc....

¿Cómo puedo solucionar esto?

Aquí está el comando que estoy usando para ejecutar el script si ayuda

 npx hardhat run scripts/ArbitrageBot.js
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Hay dos tipos de módulos en nodejs: el CommonJS más antiguo que usa require() para cargar otros módulos de CommonJS y el ESM más nuevo que usa import para cargar otros módulos de ESM. Hay algunas formas de mezclar y combinar tipos de módulos, pero eso requiere algunos conocimientos adicionales y siempre es más fácil si todos los módulos de su proyecto son del mismo tipo. Entonces, para que podamos ofrecer consejos específicos sobre su proyecto, necesitamos saber todo lo que está tratando de usar en su proyecto y qué tipo de módulo son todos.

El error específico que informa primero en su pregunta se debe a que está tratando de usar la import para cargar otros módulos desde un archivo que nodejs asume que es un módulo CommonJS y no lo permitirá. Si todo con lo que está programando son módulos CommonJS, cambie para usar require() para cargar su módulo en lugar de import . Pero, si no todo son módulos CommonJS, entonces puede ser un poco más complicado.

La extensión de archivo ( .mjs o .cjs ) puede forzar un tipo de módulo o el "type": xxx en el paquete.json puede forzar un tipo. De forma predeterminada, sin ninguno de los dos en su lugar, nodejs asume que su módulo de nivel superior con una extensión .js es un módulo CommonJS donde usaría require() para cargar otros módulos CommonJS.

El segundo error que recibe cuando intenta forzar que su módulo de nivel superior sea un módulo ESM hace que parezca que el módulo que está tratando de importar es un módulo CommonJS.

Entonces, si tuviera que adivinar, diría que el archivo que está tratando de importar es un archivo CommonJS y, por lo tanto, la vida sería más fácil si hiciera su archivo de nivel superior CommonJS. Para hacer eso, elimine el "type": "module" de package.json y cambie su import someModule a require(someModule) en su lugar. Esto intentará dejar que todo sean módulos CommonJS.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!